package com.dhcc.DRGsHosp.application;

import java.util.List;
import java.util.Map;

public interface WordDRGsReportApplication {
	/**
	 * @methodname    :findDataIsNull
	 * @description   : 判断当前生成报告的时间段内用没有数据
	 * @param         :
	 * @author        :liuhongjun
	 * @return        :
	 * @date          :2016年7月21日
	 */
	public int findDataIsNull(String dataFrom, String dataTo ,String drgVersion,String hospCode);
	/**
	 * 
	 * @methodname    :findNewDrgs
	 * @description   : 获取新增病组
	 * @param         :
	 * @author        :liuhongjun
	 * @param benchmarkYear 
	 * @return        :
	 * @date          :2016年8月2日
	 */
	public List<Object[]> findNewDrgs(String dateFrom, String dateTo, String stdId ,String groupScheme,String hospCode);
	/**
	 * 
	 * @methodname    :findSimpHospBaseQuota
	 * @description   : 获取出院病历术，大于60.如组数， 入组率
	 * @param         :
	 * @author        :liuhongjun
	 * @return        :
	 * @date          :2016年7月23日
	 */
	public Object[] findSimpHospBaseQuota(Map<String, Object> paramMap);
	/**
	 * 
	 * @methodname    :findDepCount
	 * @description   : 
	 * @param         :
	 * @author        :liuhongjun
	 * @return        :
	 * @date          :2016年7月23日
	 */
	public int findDepCount();
	/**
	 * @methodname    :getBenchmarkYear
	 * @description   : 获取标杆年份
	 * @param         :
	 * @author        :liuhongjun
	 * @return        :
	 * @date          :2016年6月17日
	 */
	public List<Object[]> getBenchmarkYear();
	/**
	 * 
	 * @Title: getDRGversionCode  
	 * @Description:根据分组方案获取分组器版本号
	 * @param @param groupScheme
	 * @param @return   
	 * @return String  
	 * @author shaozhiyuan
	 * @date 2018年10月11日  
	 * @version V3.1.1
	 * @throws
	 */
	public String getDRGversionCode(String groupScheme);
	/**
	 * @methodname    :getDRGversion
	 * @description   : 获取drg版本
	 * @param         :
	 * @author        :liuhongjun
	 * @return        :
	 * @date          :2016年6月16日
	 */
	public String getDRGversion(Map<String, Object> paramMap);
	/**
	 * 
	 * @methodname    :findSimpHospBaseTable2
	 * @description   : 表格二中出院病例数，次均费用，药占比等
	 * @param         :
	 * @author        :liuhongjun
	 * @return        :
	 * @date          :2016年7月23日
	 */
	public Object[] findSimpHospBaseTable2(Map<String, Object> paramMap);
	/**
	 * @methodname    :findSimpHospBaseTable4
	 * @description   : 表格四中drg组数，cmi，总权重，
	 * @param         :
	 * @author        :liuhongjun
	 * @return        :
	 * @date          :2016年7月23日
	 */
	public Object[] findSimpHospBaseTable4(Map<String, Object> paramMap);
	/**
	 * 
	 * @methodname    :findHospCaseOperationCount
	 * @description   :获取全院手术病例总数 
	 * @param         :Map<String,Object> paramMap
	 * @author        :liqingyang
	 * @return        :String
	 * @date          :2016年3月29日
	 */
	public String findHospCaseOperationCount(Map<String,Object> paramMap);
	/**
	 * @methodname :findOperCaseByLvel
	 * @Description : 获取手术级别信息
	 * @author:LiuHongjun
	 * @return List<Object[]>
	 * @date :2016年9月8日
	 */
	public List<Object[]> findOperCaseByLvel(Map<String, Object> paramMap);
	/**
	 * @methodname    :findOperLevelInfo
	 * @description   :查询手术级别病例信息
	 * @param         :
	 * @author        :WangTeng
	 * @return        :
	 * @date          :2016年5月11日
	 */
	public List<Map<String , Object>> findOperLevelInfo(Map<String,Object> paramMap);
	/**
	 * 
	 * @methodname    :findMainOperList
	 * @description   : 获取主要手术
	 * @param         :
	 * @author        :liuhongjun
	 * @return        :
	 * @date          :2016年6月18日
	 */
	public List<Object[]> findMainOperList(Map<String, Object> paramMap);
	/**
	 * 
	 * @Description :计算前20的主要手术的病例里哪两个手术最多 
	 * @methodname :findMainOperLevelList
	 * @author:ShaoZhiYuan
	 * @return List<Object[]>
	 * @date :2017年5月17日
	 */
	public List<Object[]> findMainOperLevelList(Map<String, Object> paramMap);
	/**
	 * 
	 * @methodname :findTop5OperCode
	 * @Description : 获取前五位的手术编码
	 * @author:LiuHongjun
	 * @return List<Map<String,Object>>
	 * @date :2016年9月9日
	 */
	public List<Object[]> findTop5OperCode(Map<String, Object> paramMap);
	/**
	 * @methodname :top5OpercodedepListByOperCode
	 * @Description : 获取手术频次第5的科室分布
	 * @author:LiuHongjun
	 * @return List<Object[]>
	 * @date :2016年9月9日
	 */
	public List<Map<String, Object>> top5OpercodedepListByOperCode(Map<String, Object> paramMap, Object object);
	/**
	 * 
	 * @methodname    :findmainOperLevelInfo
	 * @description   :   一级手术前5手术编码，名称，频次，占本级手术的占比
	 * @param         :
	 * @author        :liuhongjun
	 * @return        :
	 * @date          :2016年7月23日
	 */
	public List<Object[]> findmainOperLevelInfo(Map<String, Object> paramMap);
	/**
	 * 
	 * @methodname :findmainOperByLevelInfo
	 * @Description : 获取各级手术的出现频率最高的手术 
	 * @author:LiuHongjun
	 * @return List<Object[]>
	 * @date :2016年9月22日
	 */
	public List<Object[]> findmainOperByLevelInfo(Map<String, Object> paramMap, String level);
	/**
	 * @methodname    :findHospDRGsInfo
	 * @description   :获取全院DRGs病组
	 * @param         :
	 * @author        :WangTeng
	 * @return        :
	 * @date          :2016年5月23日
	 */
	public List<Object[]> findHospDRGsInfo(Map<String,Object> paramMap);
	/**
	 * 
	 * @methodname    :findPersonCnt
	 * @description   : 获取人数
	 * @param         :
	 * @author        :liuhongjun
	 * @return        :
	 * @date          :2016年7月23日
	 */
	public List<Object[]> findPersonCnt(Map<String, Object> paramMap);
	/**
	 * 
	 * @Description : 获取当前时间段内科室组的数量 
	 * @methodname :findHospCaseOperationCount
	 * @author:ShaoZhiYuan
	 * @return String
	 * @date :2017年2月20日
	 */
	public int findHospNowDepCnt(Map<String,Object> paramMap);
	/**
	 * @methodname    :findDepWeightAndCMI
	 * @description   :获取科室权重和CMI
	 * @param         :
	 * @author        :WangTeng
	 * @return        :
	 * @date          :2016年5月24日
	 */
	public List<Map<String , Object>> findDepWeightAndCMI(Map<String,Object> paramMap);
	/**
	 * 
	 * @methodname    :findEfficiencyDepInfoList
	 * @description   :获取效率科室情况相关信息(费用消耗指数、时间消耗指数)
	 * @param         :Map<String,Object> paramMap
	 * @author        :liqingyang
	 * @return        :List<Object[]>
	 * @date          :2016年3月29日
	 */
	public List<Object[]> findEfficiencyDepInfoList(Map<String,Object> paramMap);
	/**
	 * findHospCaseRisk1Cnt.  
	 * Description:获取低风险死亡率
	 * author LiuHongjun
	 * @param paramMap
	 * @return 
	 * Date:2017年1月12日下午3:47:02
	 */

	public String findHospCaseRisk1Cnt(Map<String, Object> paramMap);
	/**
	 * 
	 * @methodname    :findQualityDepTableByRisk1List
	 * @description   :获取低风险死亡人数各科室分布情况表
	 * @param         :Map<String,Object> paramMap
	 * @author        :liqingyang
	 * @return        :List<Object[]>
	 * @date          :2016年3月29日
	 */
	public List<Object[]> findQualityDepTableByRisk1List(Map<String,Object> paramMap);
	/**
	 * findHospCaseRisk2Cnt.  
	 * Description:获取中低风险死亡率
	 * author LiuHongjun
	 * @param paramMap
	 * @return 
	 * Date:2017年1月12日下午3:47:02
	 */

	public String findHospCaseRisk2Cnt(Map<String, Object> paramMap);
	/**
	 * 
	 * @methodname    :findQualityDepTableByRisk2List
	 * @description   :获取低风险死亡人数各科室分布情况表
	 * @param         :Map<String,Object> paramMap
	 * @author        :liqingyang
	 * @return        :List<Object[]>
	 * @date          :2016年3月29日
	 */
	public List<Object[]> findQualityDepTableByRisk2List(Map<String,Object> paramMap);
	/**
	 * @methodname :findMdcCnt
	 * @Description : 获取MDC总数
	 * @author:LiuHongjun
	 * @return int
	 * @date :2016年9月13日
	 */
	public int findMdcCnt(Map<String, Object> paramMap);
	/**
	 * 
	 * @Description :获取缺失的MDC组 
	 * @methodname :findOldLostMDCList
	 * @author:ShaoZhiYuan
	 * @return List<Object[]>
	 * @date :2017年2月21日
	 */
	public List<Object[]> findOldLostMDCList(Map<String,Object> paramMap);
	/**
	 * 
	 * @Description :DRGs病组覆盖率最高的前五个MDC专业 
	 * @methodname :findOldHighRiskAboveMDCList
	 * @author:ShaoZhiYuan
	 * @return List<Object[]>
	 * @date :2017年2月21日
	 */
	public List<Object[]> findOldHighRiskAboveMDCList(Map<String,Object> paramMap);
	/**
	 * 
	 * @Description : 高难度高产出的MDC专业
	 * @methodname :findMdcCW
	 * @author:ShaoZhiYuan
	 * @return List<Object[]>
	 * @date :2017年2月21日
	 */
	public List<Object[]> findMdcCW(Map<String,Object> paramMap);
	/**
	 * 
	 * @Description :获取各MDC下费用消耗指数和时间消耗指数  
	 * @methodname :findFeeAndTimeEff
	 * @author:ShaoZhiYuan
	 * @return List<Object[]>
	 * @date :2017年2月21日
	 */
	public List<Object[]> findFeeAndTimeEff(Map<String,Object> paramMap);
	/**
	 * 
	 * @Description :获取mdc低风险排序   
	 * @methodname :findmdcFTRisk1List
	 * @author:ShaoZhiYuan
	 * @return List<Object[]>
	 * @date :2017年2月21日
	 */
	public List<Object[]> findmdcFTRisk1List(Map<String,Object> paramMap);
	/**
	 * 
	 * @Description :获取mdc中低风险排序   
	 * @methodname :findmdcFTRisk2List
	 * @author:ShaoZhiYuan
	 * @return List<Object[]>
	 * @date :2017年2月21日
	 */
	public List<Object[]> findmdcFTRisk2List(Map<String,Object> paramMap);
	/**
	 * 
	 * @Description :一二级手术例数最多的前十名医师   
	 * @methodname :findDocOper1List
	 * @author:ShaoZhiYuan
	 * @return List<Object[]>
	 * @date :2017年2月21日
	 */
	public List<Object[]> findDocOper1List(Map<String,Object> paramMap);
	/**
	 * 
	 * @Description :三四级手术例数最多的前十名医师   
	 * @methodname :findDocOper2List
	 * @author:ShaoZhiYuan
	 * @return List<Object[]>
	 * @date :2017年2月21日
	 */
	public List<Object[]> findDocOper2List(Map<String,Object> paramMap);
	/**
	 * @methodname :findMdcDesc
	 * @Description : 获取重点专科
	 * @author:LiuHongjun
	 * @return String
	 * @date :2016年9月13日
	 */
	public List<Object[]> findMdcDesc(Map<String, Object> paramMap);
	/**
	 * @methodname :findMdcCaseCnt
	 * @Description :  获取重点专科病例数
	 * @author:LiuHongjun
	 * @return int
	 * @date :2016年9月13日
	 */
	public int findMdcCaseCnt(Map<String, Object> paramMap);
	/**
	 * 
	 * @methodname :findMdcDRGsCnt
	 * @Description : 获取重点专科drg组数
	 * @author:LiuHongjun
	 * @return int
	 * @date :2016年9月13日
	 */
	public int findMdcDRGsCnt(Map<String, Object> paramMap);
	/**
	 * @methodname :findMdcDRGsRealCnt
	 * @Description : 获取重点专科实际drg组数
	 * @author:LiuHongjun
	 * @return int
	 * @date :2016年9月13日
	 */
	public int findMdcDRGsRealCnt(Map<String, Object> paramMap);
	/**
	 * @methodname :findmdcDdrgtop10MapList
	 * @Description : 获取重点专科实际DRGS病组分析
	 * @author:LiuHongjun
	 * @return List<Map<String,Object>>
	 * @date :2016年9月14日
	 */
	public List<Map<String, Object>> findmdcDdrgtop10MapList(Map<String, Object> paramMap);
	/**
	 * @methodname :findmdcdrgweighttop10List
	 * @Description :获取重点专科实际DRGS权重分析 
	 * @author:LiuHongjun
	 * @return List<Object[]>
	 * @date :2016年9月14日
	 */
	public List<Map<String, Object>> findmdcdrgweighttop10List(Map<String, Object> paramMap);
	/**
	 * 
	 * @Description :计算重点mdc专业下总权重 
	 * @methodname :findmdctotalweightcount
	 * @author:ShaoZhiYuan
	 * @return String
	 * @date :2017年5月18日
	 */
	public String findmdctotalweightcount(Map<String, Object> paramMap);
	/**
	 * 
	 * findlistMDCbyTable27.  
	 * Description:表格27计算
	 * author LiuHongjun
	 * @param paramMap
	 * @return 
	 * Date:2017年2月11日上午11:54:38
	 */
	public Object[] findlistMDCbyTable27(Map<String, Object> paramMap);
	/**
	 * 
	 * @methodname    :findNotInGroupReason
	 * @description   : 获取未入组原因
	 * @param         :
	 * @author        :liuhongjun
	 * @return        :
	 * @date          :2016年7月23日
	 */
	public List<Object[]> findNotInGroupReason(Map<String, Object> paramMap);
	/**
	 * 
	 * @methodname    :findDepOver60List
	 * @description   : 获取大于60天的病例在科室中的分布
	 * @param         :
	 * @author        :liuhongjun
	 * @return        :
	 * @date          :2016年7月23日
	 */
	public List<Object[]> findDepOver60List(Map<String, Object> paramMap);
	/**
	 * 
	 * @methodname    :findNotInGroupCaseByDepList
	 * @description   : 获取未入组病例的科室分布
	 * @param         :
	 * @author        :liuhongjun
	 * @return        :
	 * @date          :2016年7月23日
	 */
	public List<Object[]> findNotInGroupCaseByDepList(Map<String, Object> paramMap);
	/**
	 * 
	 * @methodname    :findNotInGroupCaseByDiagList
	 * @description   : 获取入组病例的诊断信息
	 * @param         :
	 * @author        :liuhongjun
	 * @return        :
	 * @date          :2016年7月23日
	 */
	public List<Object[]> findNotInGroupCaseByDiagList(Map<String, Object> paramMap);
	/**
	 * 
	 * @methodname    :findNotInGroupCaseByOperList
	 * @description   : 获取未入组病例的手术信息
	 * @param         :
	 * @author        :liuhongjun
	 * @return        :
	 * @date          :2016年7月23日
	 */
	public List<Object[]> findNotInGroupCaseByOperList(Map<String, Object> paramMap);
	/**
	 * 
	 * @methodname    :findMdcDrgsTop5List
	 * @description   : 获取mdc下drg组数前五的mdc专业
	 * @param         :
	 * @author        :liuhongjun
	 * @return        :
	 * @date          :2016年7月23日
	 */
	public List<Object[]> findMdcDrgsTop5List(Map<String, Object> paramMap);
	/**
	 * 
	 * @methodname    :findMdcDrgsByWeightOver1List
	 * @description   : 获取mdc专业权重大于1的mdc
	 * @param         :
	 * @author        :liuhongjun
	 * @return        :
	 * @date          :2016年7月23日
	 */
	public List<Object[]> findMdcDrgsByWeightOver1List(Map<String, Object> paramMap, String mdcCodeLast5);
	/**
	 * 
	 * @methodname :findMdcDrgsByWeightOver1Cnt
	 * @Description : 获取mdc专业权重大于1的mdc的个数
	 * @author:LiuHongjun
	 * @return int
	 * @date :2016年11月23日
	 */
	public int findMdcDrgsByWeightOver1Cnt(Map<String, Object> paramMap, String mdcCodeLast5);
	/**
	 * 
	 * @methodname    :findMdcDrgsByWeightOver9List
	 * @description   : 获取mdc的权重大于9的mdc
	 * @param         :
	 * @author        :liuhongjun
	 * @return        :
	 * @date          :2016年7月23日
	 */
	public List<Object[]> findMdcDrgsByWeightOver9List(Map<String, Object> paramMap, String mdcCodeLast5);
	/**
	 * 
	 * @methodname    :findDrgsTimeList
	 * @description   : 获取drg的时间消耗指数
	 * @param         :
	 * @author        :liuhongjun
	 * @return        :
	 * @date          :2016年7月23日
	 */
	public List<Object[]> findDrgsTimeList(Map<String, Object> paramMap);
	/**
	 * 
	 * @methodname    :findDrgsFeeList
	 * @description   : 获取drg的费用消耗指数
	 * @param         :
	 * @author        :liuhongjun
	 * @return        :
	 * @date          :2016年7月23日
	 */
	public List<Object[]> findDrgsFeeList(Map<String, Object> paramMap);
	/**
	 * 
	 * @Description :附表1 全院医疗服务综合能力情况表 
	 * @methodname :findHospAbilityList
	 * @author:ShaoZhiYuan
	 * @return List<Object[]>
	 * @date :2017年2月24日
	 */
	public List<Object[]> findHospAbilityList(Map<String, Object> paramMap);
	/**
	 * 
	 * @Description :附表1 科室医疗服务综合能力情况表 
	 * @methodname :findDepAbilityList
	 * @author:ShaoZhiYuan
	 * @return List<Object[]>
	 * @date :2017年2月24日
	 */
	public List<Object[]> findDepAbilityList(Map<String, Object> paramMap);
	/**
	 * 
	 * @Description :附表2 全院DRGs病组覆盖情况指标
	 * @methodname :findHospallDRGsList
	 * @author:ShaoZhiYuan
	 * @return List<Object[]>
	 * @date :2017年2月24日
	 */
	public List<Object[]> findHospallDRGsList(Map<String, Object> paramMap);
	/**
	 * 
	 * @Description : 附表2 各MDC专业DRGs病组覆盖情况及医疗服务综合能力情况表
	 * @methodname :findMDCAbilityList
	 * @author:ShaoZhiYuan
	 * @return List<Object[]>
	 * @date :2017年2月24日
	 */
	public List<Object[]> findMDCAbilityList(Map<String, Object> paramMap);
	/**
	 * 
	 * @Description :附表3住院病例DRGs总权重最高的前二十位主治医师 
	 * @methodname :findDocByWeightList
	 * @author:ShaoZhiYuan
	 * @return List<Object[]>
	 * @date :2017年2月24日
	 */
	public List<Object[]> findDocByWeightList(Map<String, Object> paramMap);
	/**
	 * 
	 * @Description :附表4CMI值最高的前二十位主治医师
	 * @methodname :findDocByCMIList
	 * @author:ShaoZhiYuan
	 * @return List<Object[]>
	 * @date :2017年2月24日
	 */
	public List<Object[]> findDocByCMIList(Map<String, Object> paramMap);
	/**
	 * 
	 * @Description :附表5未入组病例覆盖的所有主要诊断  
	 * @methodname :findNotInGroupDiagList
	 * @author:ShaoZhiYuan
	 * @return List<Object[]>
	 * @date :2017年5月24日
	 */
	public List<Object[]> findNotInGroupDiagList(Map<String, Object> paramMap);
	/**
	 * 
	 * @Description:附表6 未入组病例覆盖的所有主要手术/操作
	 * @methodname :findNotInGroupOperList
	 * @author:ShaoZhiYuan
	 * @return List<Object[]>
	 * @date :2017年5月24日
	 */
	public List<Object[]> findNotInGroupOperList(Map<String, Object> paramMap);
	  /**
	    * 
	    * @Description :校验数据完整性
	    * @methodname :findCheckedData
	    * @author:ShaoZhiYuan
	    * @return List<Object[]>
	    * @date :2017年2月24日
	    */
		public List<Object[]> findCheckedData(String dateFrom,String dateTo,String hospCode);
		/**
		 * 
		 *  findMDC.  
		 *  @Description：获取mdc
		 *  @Author LiuHongjun
		 *  @param dto
		 *  @return 
		 *  @Date:2017年5月3日上午10:06:15
		 */
	  public List<Object[]> findMDC(String groupScheme);
	  /**
	   * 
	   *  findMDCFirstOne.  
	   *  @Description：获取重点专业基础信息
	   *  @Author LiuHongjun
	   *  @param dto
	   *  @return 
	   *  @Date:2017年5月3日上午11:06:44
	   */
		public List<Object[]> findMDCFirstOne(Map<String, Object> dto,String groupScheme);
}
